package com.dd.cloud.user.entity.log;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 操作日志
 * </p>
 *
 * @author czg
 * @since 2022-04-27
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@Table(comment = "操作消息日志记录表")
public class LogOper implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    @Column(isKey = true, isAutoIncrement = true)
    private Integer id;

    /**
     * 使用者的id
     */
    @Column(comment = "使用者的id")
    private Integer userId;

    /**
     * 名字
     */
    @Column(length = 50, comment = "名字")
    private String name;

    /**
     * 使用者类型 1医生 2机构管理员 3系统管理员 4药房 5代理商 6患者 7开放平台
     */
    @Column(comment = "使用者类型 1医生 2机构管理员 3系统管理员 4药房 5代理商 6患者 7开放平台")
    private Integer userType;

    /**
     * 操作的模块
     */
    @Column(length = 50, comment = "操作的模块")
    private String modular;

    /**
     * 功能类型 1添加 2修改 3查询 4操作
     */
    @Column(comment = "功能类型 1添加 2修改 3查询 4操作")
    private Integer operType;

    /**
     * 操作内容
     */
    @Column(length = 200, comment = "操作内容")
    private String operDesc;

    /**
     * 功能备注
     */
    @Column(length = 200, comment = "功能备注")
    private String remarks;

    /**
     * 接口地址
     */
    @Column(length = 100, comment = "接口地址")
    private String operUrl;

    /**
     * 返回参数
     */
    @Column(length = 2048, comment = "返回参数")
    private String operResParams;

    /**
     * 操作参数
     */
    @Column(length = 512, comment = "操作参数")
    private String operReqParams;

    /**
     * 操作方法
     */
    @Column(length = 128, comment = "操作方法")
    private String operMethod;

    /**
     * 操作版本号
     */
    @Column(length = 20, comment = "操作的客户端")
    private String operVer;

    /**
     * 操作的客户端ip
     */
    @Column(length = 50, comment = "操作的客户端ip")
    private String operIp;

    /**
     * 操作的客户端ip归属
     */
    @Column(length = 50, comment = "操作的客户端ip归属")
    private String operIpAddr;

    /**
     * 操作时间
     */
    @Column(comment = "操作时间")
    private LocalDateTime createDate;
}
